At compile time, a compiler may generate multiple copies of an identical object code segment for a program written in a specific programming language. This can occur when different functions in the program source code have the same object code representation, even if the functions are different. In such a situation, the program object code can be optimized by merging the identical object code segments into a single copy of the object code. A benefit from merging these identical object code segments into a single copy is a reduction in size of the executable of the program. But the merge causes a problem for debugging the program as a program counter (PC) associated with the merged object code segment no longer corresponds to a unique segment in the source code of the program.